热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关卡|都会_UE4学习杂项总结一

篇首语:本文由编程笔记#小编为大家整理,主要介绍了UE4学习杂项总结一相关的知识,希望对你有一定的参考价值。一、前言    学习UE4也有一段时间

篇首语:本文由编程笔记#小编为大家整理,主要介绍了UE4学习杂项总结一相关的知识,希望对你有一定的参考价值。


一、前言

        学习UE4也有一段时间了,将遇到的问题做了一个汇总,也许对我来说目前这写问题还算是一个知识点,因为其中还有一些基本的操作问题。当然也有一些非常费解的、截至到目前为止我也没有找到解决方法的问题。

二、具体内容

2.1、界面操作BoxBrush

刚创建的BoxBrush在Details中找不到Materials、Physics等属性,无法对材质进行设置,如图2.1.1所示:






图2.1.1


这是因为刚创建的Bush需要转换成StaticMesh才会有上述的属性,点击BrushSetting下的Create StaticMesh后,如图2.1.2所示,会将该Brush保存为一个静态网格到文






图2.1.2


件夹中,并且世界大纲中的Brush也会自动转成StaticMesh,针对StaticMesh的Details是会包含上述的属性的。

2.2、自定义的GameInstance蓝图或类的使用

如果自定义了GameInstance蓝图或类,比如命名为MyGameInstance,一定要在ProjectSetting里设置为自定义的MyGameInstance,如图2.2.1所示,






2.2.1


否则会出现转换问题。如图2.2.2所示,如果不进行图2.2.1的设置,在将系统GameInstance转成MyGameInstance时出现转换失败。






图2.2.2


 2.3、每个UI中的组件都可以成为设计视图中的变量

 在UI中有两个视图分别为Designer和Graph,在Designer中创建的UI组件在Graph中默认是不能引用的,需要将UI组件的IsVariable勾选方可。如图2.3所示,勾选组件的Is Variable后在Graph视图






图2.3


的Variable/UI下会显示刚刚勾选的组件,此时在定义的方法和事件中可以引用该组件。

2.4、 UI的Text绑定更新问题

       如图2.4.1所示,在控件Text上绑定文本更新方法,如果是从这创建的绑定






图 2.4.1


方法会执行,但如果是从这选的一开始创建好的方法,如图中的GetPing方法有可能不执行,这个可能是虚幻4(版本为4.25.4)的Bug。也即一定要从图1.4.1中点击“Create Binging”创建绑定后的处理方法才会被每帧刷新,如果是事先在“Graph”视图中创建好的方法,在图2.4.1中选择后,不会每帧执行。

2.5、如果UI按钮的子部件设置为“Collapse”则整个按钮都会隐藏并且不会占用布局空间

        如图2.5.1所示,按钮“DebugDestroySession”的子物体为“TextBlock”,并且

图2.5.1

设置这个子物体的Behavior->visibility为Collapsed,则整个按钮在运行时都会隐藏,并且不占用布局空间。

2.6、Cast To 自定义的GameInstance时失败

        在2.2中设置了默认的GameInstance为自定义的MyGameInstance类还是出现转换失败的情况,可以检查下系统的配置文件DefaultEngine.ini里的GameInstanceClass是否为对应的自定义游戏实例名,如图2.6.1所示为出现错误时对应的名字不是我创建的GameInstance名,我创建的游戏实例名字为“MyGameInstance”,将其修改过来即可。比如我创建的“MyGameInstance”蓝图脚本在如图2.6.2所示的文件夹下,则在DefaultEngine.ini里默认GameInstanceClass下面添加一句“GameInstanceClass=/Game/Blueprints/MyGameInstance.MyGameInstance_C”

修改完了之后,一定要重启一下工程才可以使用。






图2.6.1








图2.6.2


2.7、 关卡蓝图的Event BenginPlay不执行

        如果关卡Level1的Word Setting中设置了GameMode为自定义的模式,如图2.7.1所示,则从别的关卡进入到该关卡时,如通过Open Level方法加载到Level1关卡时,Level1的关卡蓝图中Event BenginPlay会出现不执行的现象。只需要将GameMode设置为None即可。






图 2.7.1


2.8、 静态网格Sockets属性使用

        

        如图2.8.1所示,帽子的模型可以通过设置其Sockets属性为head而快速放置帽子的位置。






图2.8.1


 2.9、新编译或重新打开工程能解决很多问题

        比如如图2.9.1所示,同样的两个动画状态,上面的是编译后带帧率条的,下面的就没有。不要觉得奇怪编译一下就可以,如果还是不行,重新打开一下工程。






图2.9.1


2.10、 动画出现重复播发可能需要关闭循环

2.11、蓝图中自定义的事件有Replicate属性而自定义的方法没有

2.12、User Widget可以作为一个另外一个User Widget的一部分

比如创建了一个User Widget A,并且在A里面有一个容器AC,再创建了一个User Widget B,可以直接将B创建完之后放置到容器AC中,如图2.12.1所示的蓝图,创建完之后使用Add Child方法添加到容器AC中。






图2.12.1


2.13、 纯函数和非纯函数的区别

        如图2.13.1所示,在创建函数的属性中有一个Pure的选项,勾选即成为纯函数,反之为非纯函数。纯函数和非纯函数的区别主要有:






图 2.13.1



用途不一样:纯函数通常用于只输出数据值的 getter函数或运算符;调用方式不一样:纯函数不需要执行引脚,非纯函数需要执行引脚,并且是作为输入调用,如图2.13.2的纯函数






图 2.13.2


“SetPlayerNumber”作为蓝图“Cast To MyPlayerState”的输出调用时是不会执行的,必须作为输入时才可以调用,如图 2.13.3所示,当纯函数“SetPlayerNumber”所谓“New Var 0”的输入端调用函数时会执行。也即纯函数连接到数据引脚,当需要依赖它们的数据时,编译器会自动执行它们。






图2.13.4


 2.14、在事件图中可以使用Delay方法,在自定义的方法中不能使用

如图2.14.1所示的Delay蓝图方法是在蓝图的事件图章创建的,当复制到方法中时提示不能复制,如图2.14.2所示。这也就意味着Delay只能在事件中使用不能在方法中调用,但是我想要在调用方法后执行一段延迟的功能要如何实现,只能通过方法后面调用自定义的事件了,略显得繁琐了些。有点类似于Unity的协程,单独在方面里面使用yield关键字是无法创建延迟的效果,必须要方法里调用一个新建的协程才能实现。






图2.14.1







图2.14.2


方法中不能调用的方法还有


  1. 和Session有关的所有方法,如Create Session、Destroy Session、Find Session等;
  2. Timeline方法,但Set Timer by Function Name可以调用

目前总结到的就这么多,后续再补充。

三、总结

        整理的都是平时遇到的问题,比较杂乱,不过有些问题还是很有帮助;




推荐阅读
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 在分析Android的Audio系统时,我们对mpAudioPolicy->get_input进行了详细探讨,发现其背后涉及的机制相当复杂。本文将详细介绍这一过程及其背后的实现细节。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 在HTML布局中,即使将 `top: 0%` 和 `left: 0%` 设置为元素的定位属性,浏览器中仍然会出现空白填充。这个问题通常与默认的浏览器样式、盒模型或父元素的定位方式有关。为了消除这些空白,可以考虑重置浏览器的默认样式,确保父元素的定位方式正确,并检查是否有其他CSS规则影响了元素的位置。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • 解决针织难题:R语言编程技巧与常见错误分析 ... [详细]
  • 在 Vue 应用开发中,页面状态管理和跨页面数据传递是常见需求。本文将详细介绍 Vue Router 提供的两种有效方式,帮助开发者高效地实现页面间的数据交互与状态同步,同时分享一些最佳实践和注意事项。 ... [详细]
author-avatar
cometcui
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有